"""诗歌创作 Agent"""
from langchain_openai import ChatOpenAI
from langchain_core.messages import SystemMessage, HumanMessage
from typing import TypedDict, Annotated
import operator


class State(TypedDict):
    messages: Annotated[list, operator.add]
    next: str


def create_poet_agent(model: ChatOpenAI):
    """创建诗歌创作 agent"""

    system_prompt = """你是一位富有创意的诗人。
你的职责:
1. 创作各种风格的诗歌(现代诗、古体诗、打油诗等)
2. 根据主题和情感创作诗句
3. 提供诗歌鉴赏和解读
4. 用优美的语言表达情感

请用富有诗意和感染力的方式回应。"""

    def poet_agent_node(state: State):
        messages = state["messages"]

        # 构建完整的消息历史
        agent_messages = [SystemMessage(content=system_prompt)] + messages

        # 调用模型
        response = model.invoke(agent_messages)

        return {
            "messages": [response],
            "next": "supervisor"
        }

    return poet_agent_node